<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>定位简介</title>
        <style>
            body {
                font-size: 60px;
            }

            .box1 {
                width: 200px;
                height: 200px;
                background-color: #bfa;
            }

            .box2 {
                width: 200px;
                height: 200px;
                background-color: orange;

                /* 
                  大局上用浮动,细节上用定位微调整,不要全部用定位,调整起来会很麻烦
                */

                /* 
                  定位(position):
                    - 定位是更加高级的一种布局手段
                    - 通过定位可以将元素摆在页面的任意位置
                    - 使用position属性来设置定位
                        可选值:
                          static   默认值,元素是静止的没有开启定位
                          relative 开启元素相对定位
                          absolute 开启元素的相对定位
                          fixed    开启元素的固定定位
                          sticky   开启元素的粘滞定位

                    - 相对定位:
                      - 当元素的position属性值设置为relative时则开启了元素的相对定位
                      - 相对定位的特点:
                          1.元素开启相对定位以后,如果不设置偏移量,元素不会发生任何的变化
                          2.相对定位是参照元素在文档流中位置进行定位的
                          3.相对定位会提升元素的层级
                          4.相对定位不会脱离文档流
                          5.相对定位不会改变元素的性质,块还是块,行内还是行内

                    - 偏移量(offset)(一定是开启定位以后才可以设置偏移量)
                        - 当元素开启了定位以后,可以通过设置偏移量来设置元素的位置
                            top
                              - 定位元素和定位位置上边的距离
                            bottom
                              - 定位元素和定位位置下边的距离(这个和外边距的区别是会移动自己,不会移动别人)

                              - 定位元素垂直方向的位置由top和bottom两个属性来控制
                                    通常情况下,我们只会使用其中之一
                              - top值越大,定位元素越向下移动
                              - bottom值越大,定位元素越向上移动
                            left
                              - 定位元素和定位位置左侧的距离
                            right
                              - 定位元素和定位位置的右侧距离

                              - 定位元素水平方向的位置由left和right两个属性控制
                                通常情况下只会使用一个
                              - left越大元素越靠右
                              - right越大元素越靠左
                */

                /* 使用定位的好处就是只移动元素本身,对别的元素没有影响,还有在网页中,离开屏幕的方向是负值,如果你相反的话 */
                position: relative;
                top: -200px;
                left: 100px;
            }

            .box3 {
                width: 200px;
                height: 200px;
                background-color: yellow;
            }
        </style>
    </head>
    <body>
        <div class="box1">1</div>
        <div class="box2">2</div>
        <div class="box3">3</div>
    </body>
</html>
